1. Technical Field
The present invention is directed to a method and apparatus for managing a computer system. More specifically, the present invention is directed to a method and apparatus for multicasting or broadcasting data from one partition of a partitioned computer system to a plurality of partitions.
2. Description of Related Art
Presently, many computer manufacturers design computer systems with partitioning capability. To partition a computer system is to divide the computer system""s resources (i.e., memory devices, processors etc.) into groups; thus, allowing for a plurality of operating systems to be concurrently executing on the computer system.
Partitioning a computer system may be done for a variety of reasons. Firstly, it may be done for consolidation purposes. Clearly consolidating a variety of computer systems into one by running multiple application programs that previously resided on the different computer systems on only one reduces (i) cost of ownership of the system, (ii) system management requirements and (iii) footprint size.
Secondly, partitioning may be done to provide production environment and test environment consistency. This, in turn, may inspire more confidence that an application program that has been tested successfully will perform as expected.
Thirdly, partitioning a computer system may provide increased hardware utilization. For example, when an application program does not scale well across large numbers of processors, running multiple instances of the program on separate smaller partitions may provide better throughput.
Fourthly, partitioning a system may provide application program isolation. When application programs are running on different partitions, they are guaranteed not to interfere with each other. Thus, in the event of a failure in one partition, the other partitions will not be affected. Furthermore, none of the application programs may consume an excessive amount of hardware resources. Consequently, no application programs will be starved out of required hardware resources.
Lastly, partitioning provides increased flexibility of resource allocation. A workload that has resource requirements that vary over a period of time may be managed more easily if it is being run on a partition. That is, the partition may be easily altered to meet the varying demands of the workload.
Currently, if a partition of a partitioned system needs to pass data to a plurality of other partitions of the system, it has to use the network. Specifically, the data has to travel down the TCP/IP stack of the transmitting partition and enter the network. From the network, the data enters the recipient partitions through a network interface. The data then has to travel the TCP/IP stack of each recipient partition to be processed. This is a time consuming and CPU intensive task.
Thus, what is needed is an apparatus and method of passing data from one partition of a partitioned system to a plurality of other partitions of the system without using a network.
The present invention provides a method, system and apparatus for multicasting or broadcasting a piece of data from one partition of a partitioned computer system to a plurality of partitions of the system. When a partition needs to transfer data to more than one partition of the system, the partition first stores the data into a global memory accessible by all partitions of the system. The memory is then marked xe2x80x9cread-onlyxe2x80x9d to ensure that the data is not over-written by the other partitions. The Ids (identifications) of the recipient partitions are passed to a piece of firmware or hardware of the computer system. This piece of firmware or hardware then alerts the recipient partitions that there is a piece of data ready to be read in the memory. Once all the recipient partitions have read the data, the global memory is reverted to a xe2x80x9creadxe2x80x9d and xe2x80x9cwritexe2x80x9d memory.